package com.example.appointment.fragment;

import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.ImageView;

import com.example.appointment.R;
import com.example.appointment.adapter.MyCollectionSetAdapter;
import com.example.appointment.meta.EventBusVO;
import com.example.appointment.meta.MyCollectionSetVO;
import com.example.appointment.util.Constant;

import java.util.ArrayList;

import butterknife.Bind;
import de.greenrobot.event.EventBus;

/**
 * 我的收藏系列的界面
 * Created by Admin on 2016/8/31.
 */
public class MyCollectionSetFragment extends BaseFragment {
    @Bind(R.id.fragment_mycollection_recyclerview)
    RecyclerView recyclerView;//视频列表
    MyCollectionSetAdapter setAdapter;//系列的adapter

    private ArrayList<MyCollectionSetVO> datalist = new ArrayList<>();//视频列表的集合

    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case Constant.ONITEM_LONG_CLICK:
                    //长按删除
                    MyCollectionSetVO itemvo = (MyCollectionSetVO) msg.obj;
                    setAdapter.setIsdelete(true);
                    EventBus.getDefault().post(itemvo);
                    break;
            }
        }
    };

    @Override
    protected void initView() {


        final LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(layoutManager);
        setAdapter = new MyCollectionSetAdapter(getActivity(), mHandler);
        for (int i = 0; i < 16; i++) {
            MyCollectionSetVO setvo = new MyCollectionSetVO();
//            setvo.setBackimgurl();设置图片url
            setvo.setId(i);
            setvo.setTotalfavorite(20 + "");
            setvo.setVodeototalnum(i + "");
            setvo.setVideotitle("詹姆斯视频" + i);


            datalist.add(setvo);
        }
        setAdapter.setArrayList(datalist);
        recyclerView.setAdapter(setAdapter);
    }

    @Override
    protected int getLayoutId() {
        return R.layout.fragment_mycollection_set;
    }

//
//    /**
//     * 与发布者在同一个线程
//     *
//     * @param msg 事件1
//     */
//    public void onEvent(TestVO msg) {
//
//    }

    //    /**
//     * 执行在主线程。
//     * 非常实用，可以在这里将子线程加载到的数据直接设置到界面中。
//     *
//     * @param msg 事件1
//     */
//    public void onEventMainThread(TestVO msg) {
//        String content = msg.getName()
//                + "\n ThreadName: " + Thread.currentThread().getName()
//                + "\n ThreadId: " + Thread.currentThread().getId();
//        ToastUtil.show(this, "onEventMainThread(MsgEvent1 msg)收到" + content);
//        regeditbtn.setText(content);
//    }
//
//    /**
//     * 执行在子线程，如果发布者是子线程则直接执行，如果发布者不是子线程，则创建一个再执行
//     * 此处可能会有线程阻塞问题。
//     *
//     * @param msg 事件1
//     */
//    public void onEventBackgroundThread(TestVO msg) {
//        String content = msg.getName()
//                + "\n ThreadName: " + Thread.currentThread().getName()
//                + "\n ThreadId: " + Thread.currentThread().getId();
//        ToastUtil.show(this, "onEventBackgroundThread(MsgEvent1 msg)收到" + content);
//    }
//
//    /**
//     * 执行在在一个新的子线程
//     * 适用于多个线程任务处理， 内部有线程池管理。
//     *
//     * @param msg 事件1
//     */
//    public void onEventAsync(TestVO msg) {
//        String content = msg.getName()
//                + "\n ThreadName: " + Thread.currentThread().getName()
//                + "\n ThreadId: " + Thread.currentThread().getId();
//        ToastUtil.show(this, "onEventAsync(MsgEvent1 msg)收到" + content);
//    }
//
//    /**
//     * 与发布者在同一个线程
//     * 同一个界面可以有很多的对象的订阅
//     *
//     * @param msg 事件2
//     */
    public void onEvent(ImageView msg) {
        setAdapter.setIsdelete(false);
        for (MyCollectionSetVO myCollectionSetVO : datalist) {
            myCollectionSetVO.setIsselect(false);
            setAdapter.setitem(myCollectionSetVO);
        }
    }

    /**
     * 消息处理类
     *
     * @param item
     */
    public void onEvent(EventBusVO item) {
        switch (item.what) {
            case Constant.SELECTALL:
                //全选
                for (MyCollectionSetVO myCollectionSetVO : datalist) {
                    myCollectionSetVO.setIsselect(true);
                    setAdapter.setitem(myCollectionSetVO);
                }

                break;
            case Constant.UNSELECTALL:
//全不选
                for (MyCollectionSetVO myCollectionSetVO : datalist) {
                    myCollectionSetVO.setIsselect(false);
                    setAdapter.setitem(myCollectionSetVO);
                }
                break;

        }
    }
}
